<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns# article: http://ogp.me/ns/article# " lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="Tj2's Blog">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>绿萝间 (old posts, page 212) | 绿萝间</title>
<link href="assets/css/all-nocdn.css" rel="stylesheet" type="text/css">
<link href="assets/css/ipython.min.css" rel="stylesheet" type="text/css">
<link href="assets/css/nikola_ipython.css" rel="stylesheet" type="text/css">
<meta name="theme-color" content="#5670d4">
<meta name="generator" content="Nikola (getnikola.com)">
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml">
<link rel="canonical" href="https://muxuezi.github.io/index-212.html">
<link rel="prev" href="index-213.html" type="text/html">
<link rel="next" href="index-211.html" type="text/html">
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    tex2jax: {
        inlineMath: [ ['$','$'], ["\\(","\\)"] ],
        displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
        processEscapes: true
    },
    displayAlign: 'center', // Change this to 'center' to center equations.
    "HTML-CSS": {
        styles: {'.MathJax_Display': {"margin": 0}}
    }
});
</script><!--[if lt IE 9]><script src="assets/js/html5.js"></script><![endif]-->
</head>
<body>
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>

<!-- Menubar -->

<nav class="navbar navbar-inverse navbar-static-top"><div class="container">
<!-- This keeps the margins nice -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-navbar" aria-controls="bs-navbar" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="https://muxuezi.github.io/">

                <span id="blog-title">绿萝间</span>
            </a>
        </div>
<!-- /.navbar-header -->
        <div class="collapse navbar-collapse" id="bs-navbar" aria-expanded="false">
            <ul class="nav navbar-nav">
<li>
<a href="archive.html">Archive</a>
                </li>
<li>
<a href="categories/">Tags</a>
                </li>
<li>
<a href="rss.xml">RSS feed</a>

                
            </li>
</ul>
<ul class="nav navbar-nav navbar-right"></ul>
</div>
<!-- /.navbar-collapse -->
    </div>
<!-- /.container -->
</nav><!-- End of Menubar --><div class="container" id="content" role="main">
    <div class="body-content">
        <!--Body content-->
        <div class="row">
            
            

    
<div class="postindex">
    <article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/slott-2016069-2016-06-16-report.html" class="u-url">双色球2016069期(2016-06-16)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/slott-2016069-2016-06-16-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-17T08:00:00+08:00" title="2016-06-17 08:00">2016-06-17 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/slott-2016069-2016-06-16-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/slott-2016068-2016-06-14-report.html" class="u-url">双色球2016068期(2016-06-14)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/slott-2016068-2016-06-14-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-15T08:00:00+08:00" title="2016-06-15 08:00">2016-06-15 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/slott-2016068-2016-06-14-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/slott-2016067-2016-06-12-report.html" class="u-url">双色球2016067期(2016-06-12)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/slott-2016067-2016-06-12-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-13T08:00:00+08:00" title="2016-06-13 08:00">2016-06-13 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/slott-2016067-2016-06-12-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/dlott-16067-2016-06-11-report.html" class="u-url">大乐透16067期(2016-06-11)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/dlott-16067-2016-06-11-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-12T08:00:00+08:00" title="2016-06-12 08:00">2016-06-12 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/dlott-16067-2016-06-11-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/dlott-16066-2016-06-08-report.html" class="u-url">大乐透16066期(2016-06-08)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/dlott-16066-2016-06-08-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-09T08:00:00+08:00" title="2016-06-09 08:00">2016-06-09 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/dlott-16066-2016-06-08-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/chs-web-scarping-with-python.html" class="u-url">Python网络数据采集</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/chs-web-scarping-with-python.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-08T19:22:38+08:00" title="2016-06-08 19:22">2016-06-08 19:22</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>网络爬虫是采集数据的主要手段之一，是大众喜闻乐见的计算机技术。工作和学习中经常通过Python写爬虫采集数据，偶然看到O'Reilly这本<a href="http://item.m.jd.com/product/11896401.html">《Python网络数据采集》(Web Scarping with Python)</a>，作者经验丰富，给了我们很多帮助，感谢图灵社区给我们机会。Python写爬虫是很有趣的事情，电脑上装上<a href="https://www.continuum.io/downloads">Anaconda</a>，就可以开始啦。写网络爬虫是一件很有成就感的事情，简单易用，老少皆宜，是学习编程计算的好起点。不过，数据量非常大或者考虑长期商用时，还是与对方建立合作关系更加合适。本书算是第一份工作的总结，那段时间有空，挺好！</p>
<p>下面分享我们的译者序，感谢小宝在我们翻译时安静的陪伴。</p>
<h2>《Python网络数据采集》译者序</h2>
<p>每时每刻，搜索引擎和网站都在采集大量信息，非原创即采集。采集信息用的程序一般被称为网络爬虫（Web crawler）、网络铲（Web scraper，可类比考古用的洛阳铲）、网络蜘蛛（Web spider），其行为一般是先“爬”到对应的网页上，再把需要的信息“铲”下来。O'Reilly这本书的封面图案是一只穿山甲，图灵公司把这本书的中文版定名为“Python网络数据采集”。当我们看完这本书的时候，觉得网络数据采集程序也像是一只辛勤采蜜的小蜜蜂，它飞到花（目标网页）上，采集花粉（需要的信息），经过处理（数据清洗、存储）变成蜂蜜（可用的数据）。网络数据采集可以为生活加点儿蜜，亦如本书作者所说，“网络数据采集是为普通大众所喜闻乐见的计算机巫术”。</p>
<p>网络数据采集大有所为。在大数据深入人心的时代，网络数据采集作为网络、数据库与机器学习等领域的交汇点，已经成为满足个性化网络数据需求的最佳实践。搜索引擎可以满足人们对数据的共性需求，即“我来了，我看见”，而网络数据采集技术可以进一步精炼数据，把网络中杂乱无章的数据聚合成合理规范的形式，方便分析与挖掘，真正实现“我征服”。工作中，你可能经常为找数据而烦恼，或者眼睁睁看着眼前的几百页数据却只能长恨咫尺天涯，又或者数据杂乱无章的网站中满是带有陷阱的表单和坑爹的验证码，甚至需要的数据都在网页版的PDF和网络图片中。而作为一名网站管理员，你也需要了解常用的网络数据采集手段，以及常用的网络表单安全措施，以提高网站访问的安全性，所谓道高一尺，魔高一丈……一念清净，烈焰成池，一念觉醒，方登彼岸，本书试图成为解决这些问题的一念，让你茅塞顿开，船登彼岸。</p>
<p>网络数据采集并不是一门语言的独门秘籍，Python、Java、PHP、C#、Go等语言都可以讲出精彩的故事。有人说编程语言就是宗教，不同语言的设计哲学不同，行为方式各异，“非我族类，其心必异”，但本着美好生活、快乐修行的初衷，我们对所有语言都时刻保持敬畏之心，尊重信仰自由，努力做好自己的功课。对爱好Python的人来说，人生苦短，Python当歌！简洁轻松的语法，开箱即用的模块，强大快乐的社区，总可以快速构建出简单高效的解决方案。使用Python的日子总是充满快乐的，本书关于Python网络数据采集的故事也不例外。网络数据采集涉及多个领域，内容包罗万象，因此本书覆盖的主题较多，涉及的知识面相对广阔，书中介绍的Python模块有urllib、BeautifulSoup、lxml、Scrapy、PdfMiner、requests、Selenium、NLTK、Pillow、unittest、PySocks等，还有一些知名网站的API、MySQL数据库、OpenRefine数据分析工具、PhanthomJS无头浏览器以及Tor代理服务器等内容。每行到一处，皆是风景独好，而且作者也为每一个主题提供了深入研究的参考资料。不过，本书关于多进程（multiprocessing）、并发（concurrency）、集群（cluster）等高性能采集主题着墨不多，更加关注性能的读者，可以参考其他关于Python高性能和多核编程的书籍。总之，本书通俗易懂，简单易行，有编程基础的同学都可以阅读。不会Python？抽一节课时间学一下吧。</p>
<p>网络数据采集也应该有所不为。国内外关于网络数据保护的法律法规都在不断地制定与完善中，本书作者在书中介绍了美国与网络数据采集相关的法律与典型案例，呼吁网络爬虫严格控制网络数据采集的速度，降低被采集网站服务器的负担。恶意消耗别人网站的服务器资源，甚至拖垮别人网站是一件不道德的事情。众所周知，这已经不仅仅是一句“吸烟有害健康”之类的空洞口号，它可能导致更严重的法律后果，且行且珍惜！</p>
<p>语言是思想的解释器，书籍是语言的载体。本书英文原著是作者用英文解释器为自己思想写的载体，而译本是译者根据英文原著以及与作者的交流，用简体中文解释器为作者思想写的载体。读者拿到的中译本，是作者思想经过两层解释器转换的结果，其目的是希望帮助中文读者消除语言障碍，理解作者的思想，与作者产生共鸣，一起面对作者曾经遇到的问题，共同探索解决问题的方法，从而帮助读者提高解决问题的能力，增强直面bug的信心。bug是产品生命中的挑战，好产品是不断面对bug并战胜bug的结果。译者水平有限，译文bug也在所难免，翻译有不到之处，还请各位读者批评指正！</p>
<p>最后要感谢图灵公司朱巍老师的大力支持，让译作得以顺利出版。也要感谢神烦小宝的温馨陪伴，每天6点叫我们起床，让业余时间格外宽裕。</p>
<p>2015年10月</p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/slott-2016065-2016-06-07-report.html" class="u-url">双色球2016065期(2016-06-07)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/slott-2016065-2016-06-07-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-08T08:00:00+08:00" title="2016-06-08 08:00">2016-06-08 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/slott-2016065-2016-06-07-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/dlott-16065-2016-06-06-report.html" class="u-url">大乐透16065期(2016-06-06)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/dlott-16065-2016-06-06-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-07T08:00:00+08:00" title="2016-06-07 08:00">2016-06-07 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/dlott-16065-2016-06-06-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/slott-2016064-2016-06-05-report.html" class="u-url">双色球2016064期(2016-06-05)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/slott-2016064-2016-06-05-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-06T08:00:00+08:00" title="2016-06-06 08:00">2016-06-06 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/slott-2016064-2016-06-05-report.html">Read more…</a></p>
</div>
    </div>
    </article><article class="h-entry post-text"><header><h1 class="p-name entry-title"><a href="posts/dlott-16064-2016-06-04-report.html" class="u-url">大乐透16064期(2016-06-04)数据分析报告</a></h1>
        <div class="metadata">
            <p class="byline author vcard"><span class="byline-name fn">
                Tao Junjie
            </span></p>
            <p class="dateline"><a href="posts/dlott-16064-2016-06-04-report.html" rel="bookmark"><time class="published dt-published" datetime="2016-06-05T08:00:00+08:00" title="2016-06-05 08:00">2016-06-05 08:00</time></a></p>
        </div>
    </header><div class="p-summary entry-summary">
    <div>
<p>如有雷同，纯属巧合</p>
<p class="more"><a href="posts/dlott-16064-2016-06-04-report.html">Read more…</a></p>
</div>
    </div>
    </article>
</div>

        <nav class="postindexpager"><ul class="pager">
<li class="previous">
                <a href="index-213.html" rel="prev">Newer posts</a>
            </li>
            <li class="next">
                <a href="index-211.html" rel="next">Older posts</a>
            </li>
        </ul></nav>
</div>
        <!--End of body content-->

        <footer id="footer">
            Contents © 2017         <a href="mailto:muxuezi@gmail.com">Tao Junjie</a> - Powered by         <a href="https://getnikola.com" rel="nofollow">Nikola</a>         
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0">
<img alt="Creative Commons License BY-NC-SA" style="border-width:0; margin-bottom:12px;" src="http://i.creativecommons.org/l/by-nc-sa/4.0/80x15.png"></a>
            
        </footer>
</div>
</div>


            <script src="assets/js/all-nocdn.js"></script><script>$('a.image-reference:not(.islink) img:not(.islink)').parent().colorbox({rel:"gal",maxWidth:"100%",maxHeight:"100%",scalePhotos:true});</script><!-- fancy dates --><script>
    moment.locale("en");
    fancydates(0, "YYYY-MM-DD HH:mm");
    </script><!-- end fancy dates --><script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-51330059-1', 'auto');
  ga('send', 'pageview');

</script>
</body>
</html>
